Distributed systems include several autonomous computational entities (i.e., components) communicating with each other. Testing applications utilizing such distributed systems can be a cumbersome and inefficient process. The testing system for such application may depend on resources scattered across a data center that might become unavailable (e.g., network failures and unreachable storage) or broken (e.g., servers not cleaning up properly after previous tests).